package cz.tpj.database.akcia;

import static org.junit.Assert.*;

import org.junit.Test;

import cz.tpj.database.obrazky.Obrazok;
import cz.tpj.util.ErrorDatabase;

public class Table_AkciaTest {

	@Test
	public void testGetInstance() {
		Table_Akcia o1 = Table_Akcia.getInstance();
		
		assertNotNull(o1);
	}

	@Test
	public void testGetCondAkcie() {
		Obrazok o1 = new Obrazok();
		Akcia o2 = new Akcia("ID1", "action1", "the test action", "first action of the first test","27.12.1984","Opava","park","John Black",o1);
		Table_Akcia o3 = Table_Akcia.getInstance();

		Akcia o4 = new Akcia("ID2", "action2", "the test action", "second action of the first test","27.12.1984","Opava","park","John Black",o1);		
		Akcia o5 = new Akcia("ID3", "action3", "the test action", "third action of the first test","28.12.1984","Ostrava","park","John Black",o1);		
	
		try {
			o3.insertAkcia(o2);
			o3.insertAkcia(o4);
			o3.insertAkcia(o5);
			
			assertNotNull(o3.getCondAkcie("Opava"));
		} catch (ErrorDatabase e) {
			e.printStackTrace();
		}
	}

	@Test
	public void testInsertAkcia() {
		Obrazok o1 = new Obrazok();
		Akcia o2 = new Akcia("ID1", "action1", "the test action", "first action of the first test","27.12.1984","Opava","park","John Black",o1);		
		Table_Akcia o3 = Table_Akcia.getInstance();
		
		try {
			assertTrue(o3.insertAkcia(o2));
		} catch (ErrorDatabase e) {
			e.printStackTrace();
		}		
	}

	@Test
	public void testDeleteAkcia() {
		//S tímto si nejsem jistý. Nevím, jestlli bude ID o2 = 0 :)
		
		Obrazok o1 = new Obrazok();
		Akcia o2 = new Akcia("ID1", "action1", "the test action", "first action of the first test","27.12.1984","Opava","park","John Black",o1);		
		Table_Akcia o3 = Table_Akcia.getInstance();
		
		try {
			o3.insertAkcia(o2);
			assertTrue(o3.deleteAkcia(0));
		} catch (ErrorDatabase e) {
			e.printStackTrace();
		}
	}

	@Test
	public void testUpdateAkcia() {
		Obrazok o1 = new Obrazok();
		Akcia o2 = new Akcia("ID1", "action1", "the test action", "first action of the first test","27.12.1984","Opava","park","John Black",o1);		
		Table_Akcia o3 = Table_Akcia.getInstance();

		Akcia o4 = new Akcia("ID4", "action4", "the test action", "fourth action of the first test","27.12.1984","Opava","park","John Black",o1);		
		
		try {			
			assertTrue(o3.updateAkcia(o4));
		} catch (ErrorDatabase e) {
			e.printStackTrace();
		}		
	}

}
